import re

def extract_strings(source_code):
    """
    从源代码中提取所有的字符串，并处理其中的转义字符。
    :param source_code: 源代码字符串
    :return: 提取出的字符串列表
    """
    result = []
    length = len(source_code)
    i = 0
    inside_string = False  # 是否在字符串内部
    current_string = []  # 当前字符串的字符积累
    escape = False  # 是否正在处理转义字符

    while i < length:
        char = source_code[i]

        if inside_string:
            if escape:
                # 处理转义字符
                current_string.append(char)
                escape = False
            elif char == '\\':
                # 如果是反斜杠，则进入转义状态
                escape = True
            elif char == '"':
                # 结束字符串
                result.append(''.join(current_string))
                current_string = []
                inside_string = False
            else:
                # 累积字符串内容
                current_string.append(char)
        
        else:
            if char == '"':
                # 遇到双引号，开始新的字符串
                inside_string = True
        
        i += 1

    return result

# 测试代码
source_code = '''
"一般学习一门编程语言的时候，基本上第一个程序是输出\\"Hello World!\\""
"这是一个简单的测试字符串。"
"转义字符\\n和\\t也需要处理。"
'''

strings = extract_strings(source_code)

# 输出提取出的字符串
for s in strings:
    print(s)
